package com.ims.core.doc.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ims.common.annotation.Excel;
import com.ims.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 结算单保存为发票 请求对象
 *
 * @author IMS
 * @date 2024-05-30
 */
public class TScSettlebillRequest extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 结算单ID */
    private String settleId;

    /** 公司代码 */
    private String custId;

    /** 公司代码 */
    private String siteCode;

    /** 公司 */
    private String siteName;

    /** 发货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date deliveryTime;

    /** 结算时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date settleTime;

    /** 订单ID */
    private String orderId;

    /** 订单号 */
    private String orderNo;

    /** 源结算单ID */
    private String sourceSettleId;

    /** 源订单ID */
    private String sourceOrderId;

    /** 源订单号 */
    private String sourceOrderNo;

    /** 发票类型代码 */
    private String invoiceType;

    /** 发票类型 */
    private String invoiceTypeName;

    /** 金额(不含税) */
    private BigDecimal feeWithoutTax;

    /** 金额(含税) */
    private BigDecimal fee;

    /** 税额 */
    @Excel(name = "税额")
    private BigDecimal tax;

    /** 待销金额(不含税) */
    private BigDecimal pendingFeeWithoutTax;

    /** 待销金额(含税) */
    private BigDecimal pendingFee;

    /** 单据状态代码 */
    private Long settlebillStatus;

    /** 单据状态 */
    private String settlebillStatusName;

    /** 单据性质代码 */
    private String natureType;

    /** 单据性质 */
    private String natureTypeName;

    /** 特定业务代码 */
    private Long businessType;

    /** 特定业务 */
    private String businessTypeName;

    /** 征收类型代码 */
    private Long collectionType;

    /** 征收类型 */
    private String collectionTypeName;

    /** 特殊开票 */
    private String specialInvoice;

    /** 购方名称 */
    private String buyerName;

    /** 购方纳税识别号 */
    private String buyerNumber;

    /** 购方地址 */
    private String buyerAddress;

    /** 购方电话 */
    private String buyerTel;

    /** 购方开户行 */
    private String buyerBank;

    /** 购方账号 */
    private String buyerAccount;

    /** 购方凭证号 */
    private String voucherNumber;

    /** 开票人 */
    private String invoiceName;

    /** 收款人 */
    private String collectName;

    /** 复核人 */
    private String reviewName;

    /** 收票人邮箱 */
    private String collectMail;

    /** 收票人手机号 */
    private String collectMobile;

    /** 销方名称 */
    private String sellerName;

    /** 销方纳税识别号 */
    private String sellerNumber;

    /** 销方地址 */
    private String sellerAddress;

    /** 销方电话 */
    private String sellerTel;

    /** 销方开户行 */
    private String sellerBank;

    /** 销方账号 */
    private String sellerAccount;

    /** 合并标识 */
    private Long mergeIdent;

    /** 合并标识 */
    private String mergeIdentName;

    /** 拆分状态 */
    private Long splitStatus;

    /** 拆分状态 */
    private String splitStatusName;

    /** 开票网点 */
    private String invoiceBranchName;

    /** 站点 */
    private String branchName;

    /** ERP发票流水号 */
    private String erpSerialNumber;

    /** 结算单明细项信息 */
    private List<TScSettlebillEntryRequest> tScSettlebillEntryList;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setSettleId(String settleId)
    {
        this.settleId = settleId;
    }

    public String getSettleId()
    {
        return settleId;
    }
    public void setCustId(String custId)
    {
        this.custId = custId;
    }

    public String getCustId()
    {
        return custId;
    }
    public void setSiteCode(String siteCode)
    {
        this.siteCode = siteCode;
    }

    public String getSiteCode()
    {
        return siteCode;
    }
    public void setSiteName(String siteName)
    {
        this.siteName = siteName;
    }

    public String getSiteName()
    {
        return siteName;
    }
    public void setDeliveryTime(Date deliveryTime)
    {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime()
    {
        return deliveryTime;
    }
    public void setSettleTime(Date settleTime)
    {
        this.settleTime = settleTime;
    }

    public Date getSettleTime()
    {
        return settleTime;
    }
    public void setOrderId(String orderId)
    {
        this.orderId = orderId;
    }

    public String getOrderId()
    {
        return orderId;
    }
    public void setOrderNo(String orderNo)
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo()
    {
        return orderNo;
    }
    public void setSourceSettleId(String sourceSettleId)
    {
        this.sourceSettleId = sourceSettleId;
    }

    public String getSourceSettleId()
    {
        return sourceSettleId;
    }
    public void setSourceOrderId(String sourceOrderId)
    {
        this.sourceOrderId = sourceOrderId;
    }

    public String getSourceOrderId()
    {
        return sourceOrderId;
    }
    public void setSourceOrderNo(String sourceOrderNo)
    {
        this.sourceOrderNo = sourceOrderNo;
    }

    public String getSourceOrderNo()
    {
        return sourceOrderNo;
    }
    public void setInvoiceType(String invoiceType)
    {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceType()
    {
        return invoiceType;
    }
    public void setInvoiceTypeName(String invoiceTypeName)
    {
        this.invoiceTypeName = invoiceTypeName;
    }

    public String getInvoiceTypeName()
    {
        return invoiceTypeName;
    }
    public void setFeeWithoutTax(BigDecimal feeWithoutTax)
    {
        this.feeWithoutTax = feeWithoutTax;
    }

    public BigDecimal getFeeWithoutTax()
    {
        return feeWithoutTax;
    }
    public void setFee(BigDecimal fee)
    {
        this.fee = fee;
    }

    public BigDecimal getFee()
    {
        return fee;
    }
    public void setTax(BigDecimal tax)
    {
        this.tax = tax;
    }

    public BigDecimal getTax()
    {
        return tax;
    }
    public void setPendingFeeWithoutTax(BigDecimal pendingFeeWithoutTax)
    {
        this.pendingFeeWithoutTax = pendingFeeWithoutTax;
    }

    public BigDecimal getPendingFeeWithoutTax()
    {
        return pendingFeeWithoutTax;
    }
    public void setPendingFee(BigDecimal pendingFee)
    {
        this.pendingFee = pendingFee;
    }

    public BigDecimal getPendingFee()
    {
        return pendingFee;
    }
    public void setSettlebillStatus(Long settlebillStatus)
    {
        this.settlebillStatus = settlebillStatus;
    }

    public Long getSettlebillStatus()
    {
        return settlebillStatus;
    }
    public void setSettlebillStatusName(String settlebillStatusName)
    {
        this.settlebillStatusName = settlebillStatusName;
    }

    public String getSettlebillStatusName()
    {
        return settlebillStatusName;
    }
    public void setNatureType(String natureType)
    {
        this.natureType = natureType;
    }

    public String getNatureType()
    {
        return natureType;
    }
    public void setNatureTypeName(String natureTypeName)
    {
        this.natureTypeName = natureTypeName;
    }

    public String getNatureTypeName()
    {
        return natureTypeName;
    }
    public void setBusinessType(Long businessType)
    {
        this.businessType = businessType;
    }

    public Long getBusinessType()
    {
        return businessType;
    }
    public void setBusinessTypeName(String businessTypeName)
    {
        this.businessTypeName = businessTypeName;
    }

    public String getBusinessTypeName()
    {
        return businessTypeName;
    }
    public void setCollectionType(Long collectionType)
    {
        this.collectionType = collectionType;
    }

    public Long getCollectionType()
    {
        return collectionType;
    }
    public void setCollectionTypeName(String collectionTypeName)
    {
        this.collectionTypeName = collectionTypeName;
    }

    public String getCollectionTypeName()
    {
        return collectionTypeName;
    }
    public void setSpecialInvoice(String specialInvoice)
    {
        this.specialInvoice = specialInvoice;
    }

    public String getSpecialInvoice()
    {
        return specialInvoice;
    }
    public void setBuyerName(String buyerName)
    {
        this.buyerName = buyerName;
    }

    public String getBuyerName()
    {
        return buyerName;
    }
    public void setBuyerNumber(String buyerNumber)
    {
        this.buyerNumber = buyerNumber;
    }

    public String getBuyerNumber()
    {
        return buyerNumber;
    }
    public void setBuyerAddress(String buyerAddress)
    {
        this.buyerAddress = buyerAddress;
    }

    public String getBuyerAddress()
    {
        return buyerAddress;
    }
    public void setBuyerTel(String buyerTel)
    {
        this.buyerTel = buyerTel;
    }

    public String getBuyerTel()
    {
        return buyerTel;
    }
    public void setBuyerBank(String buyerBank)
    {
        this.buyerBank = buyerBank;
    }

    public String getBuyerBank()
    {
        return buyerBank;
    }
    public void setBuyerAccount(String buyerAccount)
    {
        this.buyerAccount = buyerAccount;
    }

    public String getBuyerAccount()
    {
        return buyerAccount;
    }
    public void setVoucherNumber(String voucherNumber)
    {
        this.voucherNumber = voucherNumber;
    }

    public String getVoucherNumber()
    {
        return voucherNumber;
    }
    public void setInvoiceName(String invoiceName)
    {
        this.invoiceName = invoiceName;
    }

    public String getInvoiceName()
    {
        return invoiceName;
    }
    public void setCollectName(String collectName)
    {
        this.collectName = collectName;
    }

    public String getCollectName()
    {
        return collectName;
    }
    public void setReviewName(String reviewName)
    {
        this.reviewName = reviewName;
    }

    public String getReviewName()
    {
        return reviewName;
    }
    public void setCollectMail(String collectMail)
    {
        this.collectMail = collectMail;
    }

    public String getCollectMail()
    {
        return collectMail;
    }
    public void setCollectMobile(String collectMobile)
    {
        this.collectMobile = collectMobile;
    }

    public String getCollectMobile()
    {
        return collectMobile;
    }
    public void setSellerName(String sellerName)
    {
        this.sellerName = sellerName;
    }

    public String getSellerName()
    {
        return sellerName;
    }
    public void setSellerNumber(String sellerNumber)
    {
        this.sellerNumber = sellerNumber;
    }

    public String getSellerNumber()
    {
        return sellerNumber;
    }
    public void setSellerAddress(String sellerAddress)
    {
        this.sellerAddress = sellerAddress;
    }

    public String getSellerAddress()
    {
        return sellerAddress;
    }
    public void setSellerTel(String sellerTel)
    {
        this.sellerTel = sellerTel;
    }

    public String getSellerTel()
    {
        return sellerTel;
    }
    public void setSellerBank(String sellerBank)
    {
        this.sellerBank = sellerBank;
    }

    public String getSellerBank()
    {
        return sellerBank;
    }
    public void setSellerAccount(String sellerAccount)
    {
        this.sellerAccount = sellerAccount;
    }

    public String getSellerAccount()
    {
        return sellerAccount;
    }
    public void setMergeIdent(Long mergeIdent)
    {
        this.mergeIdent = mergeIdent;
    }

    public Long getMergeIdent()
    {
        return mergeIdent;
    }
    public void setMergeIdentName(String mergeIdentName)
    {
        this.mergeIdentName = mergeIdentName;
    }

    public String getMergeIdentName()
    {
        return mergeIdentName;
    }
    public void setSplitStatus(Long splitStatus)
    {
        this.splitStatus = splitStatus;
    }

    public Long getSplitStatus()
    {
        return splitStatus;
    }
    public void setSplitStatusName(String splitStatusName)
    {
        this.splitStatusName = splitStatusName;
    }

    public String getSplitStatusName()
    {
        return splitStatusName;
    }
    public void setInvoiceBranchName(String invoiceBranchName)
    {
        this.invoiceBranchName = invoiceBranchName;
    }

    public String getInvoiceBranchName()
    {
        return invoiceBranchName;
    }
    public void setBranchName(String branchName)
    {
        this.branchName = branchName;
    }

    public String getBranchName()
    {
        return branchName;
    }
    public void setErpSerialNumber(String erpSerialNumber)
    {
        this.erpSerialNumber = erpSerialNumber;
    }

    public String getErpSerialNumber()
    {
        return erpSerialNumber;
    }

    public List<TScSettlebillEntryRequest> getTScSettlebillEntryList()
    {
        return tScSettlebillEntryList;
    }

    public void setTScSettlebillEntryList(List<TScSettlebillEntryRequest> tScSettlebillEntryList)
    {
        this.tScSettlebillEntryList = tScSettlebillEntryList;
    }

}
